package com.funsport.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@Schema(description = "创建活动请求")
public class CreateEventRequest {
    @NotBlank(message = "活动标题不能为空")
    @Schema(description = "活动标题", required = true)
    private String title;
    
    @Schema(description = "活动描述")
    private String description;
    
    @Schema(description = "封面图片")
    private String coverImage;
    
    @Schema(description = "俱乐部ID")
    private Long clubId;
    
    @NotNull(message = "运动类型不能为空")
    @Schema(description = "运动类型ID", required = true)
    private Integer sportTypeId;
    
    @NotNull(message = "开始时间不能为空")
    @Schema(description = "开始时间", required = true)
    private LocalDateTime startTime;
    
    @NotNull(message = "结束时间不能为空")
    @Schema(description = "结束时间", required = true)
    private LocalDateTime endTime;
    
    @Schema(description = "报名截止时间")
    private LocalDateTime registrationDeadline;
    
    @Schema(description = "场地ID")
    private Long venueId;
    
    @Schema(description = "地点名称")
    private String locationName;
    
    @Schema(description = "详细地址")
    private String address;
    
    @Schema(description = "所在城市")
    private String city;
    
    @Schema(description = "所在省份")
    private String province;
    
    @Schema(description = "纬度")
    private BigDecimal latitude;
    
    @Schema(description = "经度")
    private BigDecimal longitude;
    
    @NotNull(message = "最大参与人数不能为空")
    @Schema(description = "最大参与人数", required = true)
    private Integer maxParticipants;
    
    @Schema(description = "最小参与人数")
    private Integer minParticipants;
    
    @Schema(description = "费用类型：free-免费，paid-付费，aa-AA制")
    private String feeType;
    
    @Schema(description = "费用金额")
    private BigDecimal feeAmount;
    
    @Schema(description = "是否公开")
    private Boolean isPublic;
    
    @Schema(description = "报名是否需要审核")
    private Boolean needApproval;
    
    @Schema(description = "是否启用接龙功能")
    private Boolean enableSolitaire;
}
